Statistics
A Statistics behavior allows you to collect and report statistics generated by other behaviors in a component during a simulation.

Properties
Data collection can be cumulative or based on time, states and events. In order to report statistics a behavior needs to have a Statistics property or else you can use a Python Script to manually define data collection. By default, interval-based statistics are reported every 60 seconds in a running simulation.
| Name | Description |
| Name | Defines the name of the Statistics behavior. |
| PartsEntered | Indicates the number of components that have arrived at a container type behavior. |
| PartsExited | Indicates the number of components that have departed a container type behavior. |
| PartsCurrent | Indicates the current amount of components attached to a container type behavior. |
| PartsUtilization | Indicates the percentage of components attached to a container type behavior divided by the container's capacity. For example, a Component Container may have the capacity to hold 100 components but has only contained 50 components, resulting in 50 percent utilization of storage space. |
| PartsAverageCount | Indicates the average amount of components that have been attached to a container type behavior. For example, on average a sorting machine might have 10 components at any given time. |
| PartsMinCount | Indicates the minimum number of components that have been attached to a container type behavior at one particular time. For example, a shuttle conveyor might have a minimum of one component at any given time. |
| PartsMaxCount | Indicates the maximum number of components that have been attached to a container type behavior. For example, a robot gripper might have a maximum of three components at any given time. |
| PartsTotalTime | Indicates the total amount of time each component spent attached to a container type behavior. For example, a machine processes 10 components for 5 seconds with a feed in/out rate of 2~3 seconds, so the sum total of each component's duration in the machine added together results in PartsTotalTime. |
| PartsAverageTime | Indicates the average amount of time a component spent attached to a container type behavior. |
| PartsMinTime | Indicates the minimum amount of time a component spent attached to a container type behavior. |
| PartsMaxTime | The maximum amount of time a component spent attached to a container type behavior. |
| PartsIntervalEntered | Same as PartsEntered but for a recorded interval. |
| PartsIntervalExited | Same as PartsExited but for a recorded interval. |
| PartsIntervalCurrent | Same as PartsCurrent but for a recorded interval. |
| PartsIntervalUtilization | Same as PartsUtilization but for a recorded interval. |
| PartsIntervalAverageCount | Same as PartsAverageCount but for a recorded interval. |
| PartsIntervalMinCount | Same as PartsMinCount but for a recorded interval. |
| PartsIntervalMaxCount | Same as PartsMaxCount but for a recorded interval. |
| PartsIntervalTotalTime | Same as PartsTotalTime but for a recorded interval. |
| PartsIntervalAverageTime | Same as PartsAverageTime but for a recorded interval. |
| PartsIntervalMinTime | Same as PartsMinTime but for a recorded interval. |
| PartsIntervalMaxTime | Same as PartsMaxTime but for a recorded interval. |
| Utilization | Indicates the percentage a behavior was in a defined "setup" or "busy" state based on the elapsed time of a simulation. |
| TotalStateTime | Indicates the total amount of time a behavior was in any of its defined states based on the elapsed time of a simulation. |
| BreakPercentage | Indicates the percentage a behavior was in a defined "break" state based on the elapsed time of a simulation. Generally, a broken state should occur before a defined repair state. |
| IdlePercentage | Indicates the percentage a behavior was in a defined "idle" state based on the elapsed time of a simulation. |
| BusyPercentage | Indicates the percentage a behavior was in a defined "busy" state based on the elapsed time of a simulation. |
| BlockedPercentage | Indicates the percentage a behavior was in a defined "blocked" state based on the elapsed time of a simulation. Generally, capacity issues trigger a blocked state in a behavior. |
| FailedPercentage | Indicates the percentage a behavior was in a defined "failed" state based on the elapsed time of a simulation. |
| RepairPercentage | Indicates the percentage a behavior was in a defined "repair" state based on the elapsed time of a simulation. |
| SetupPercentage | Indicates the percentage a behavior was in a defined "setup" or "warm up" state based on the elapsed time of a simulation. |
| AverageActivePeriodTime | Indicates the average amount of time a behavior was in one of its defined states during a simulation. |
| IntervalUtilization | Same as Utilization but for a recorded interval. |
| IntervalTotalStateTime | Same as TotalStateTime but for a recorded interval. |
| IntervalBreakPercentage | Same as BreakPercentage but for a recorded interval. |
| IntervalIdlePercentage | Same as IdlePercentage but for a recorded interval. |
| IntervalBusyPercentage | Same as BusyPercentage but for a recorded interval. |
| IntervalBlockedPercentage | Same as BlockedPercentage but for a recorded interval. |
| IntervalFailedPercentage | Same as FailedPercentage but for a recorded interval. |
| IntervalRepairPercentage | Same as RepairPercentage but for a recorded interval. |
| IntervalSetupPercentage | Same as SetupPercentage but for a recorded interval. |
States
A component can have one or more states, which are defined by a Statistics behavior. A state is the condition of a component during a simulation at a given time. This is why each state has two dynamic properties: State<StateName>Percentage and State<StateName>IntervalPercentage. A state is mapped to a system state, which is a hardcoded, predefined condition for a component.

The Create default states property of a Statistics behavior allows you to create the following eight states.
| Name | Description |
| Blocked | Indicates a component is blocked, for example a capacity issue or parts are stuck in a process. |
| Break | Indicates a break in a component, for example a break in a process. |
| Broken | Indicates a failure in a component, for example something is broken and needs to be repaired. |
| Busy | Indicates a component is busy, for example executing a process. |
| Idle | Indicates a component is not busy, for example not waiting for a command or not executing a process. |
| Repair | Indicates a component is being repaired, for example fixing a broken part. |
| Setup | Indicates a component is being configured, for example a boot process or steps before executing a process. |
| Warmup | Indicates warm up time in a component. |
Notes:
- You can rename a state, but it must always be mapped to a system state.